using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("AdventureWing")]
	public class AdventureWing : MonoBehaviour
	{
		[Attribute38("AdventureWing.BackgroundRandomization")]
		public class BackgroundRandomization : MonoClass
		{
			public MeshRenderer m_backgroundRenderer => method_3<MeshRenderer>("m_backgroundRenderer");

			public string m_materialTextureName => method_4("m_materialTextureName");

			public BackgroundRandomization(IntPtr address, string className)
				: base(address, className)
			{
			}

			public BackgroundRandomization(IntPtr address)
				: this(address, "BackgroundRandomization")
			{
			}
		}

		[Attribute38("AdventureWing.Boss")]
		public class Boss : MonoClass
		{
			public ScenarioDbId m_MissionId => method_2<ScenarioDbId>("m_MissionId");

			public AdventureBossCoin m_Coin => method_3<AdventureBossCoin>("m_Coin");

			public AdventureRewardsChest m_Chest => method_3<AdventureRewardsChest>("m_Chest");

			public Boss(IntPtr address, string className)
				: base(address, className)
			{
			}

			public Boss(IntPtr address)
				: this(address, "Boss")
			{
			}
		}

		public AdventureWingEventTable m_WingEventTable => method_3<AdventureWingEventTable>("m_WingEventTable");

		public GameObject m_ContentsContainer => method_3<GameObject>("m_ContentsContainer");

		public GameObject m_CoinContainer => method_3<GameObject>("m_CoinContainer");

		public GameObject m_WallAccentContainer => method_3<GameObject>("m_WallAccentContainer");

		public GameObject m_PlateAccentContainer => method_3<GameObject>("m_PlateAccentContainer");

		public GameObject m_LockPlate => method_3<GameObject>("m_LockPlate");

		public GameObject m_LockPlateFXContainer => method_3<GameObject>("m_LockPlateFXContainer");

		public List<UberText> m_WingTitles => method_3<Class271<UberText>>("m_WingTitles")?.method_25();

		public PegUIElement m_UnlockButton => method_3<PegUIElement>("m_UnlockButton");

		public PegUIElement m_BuyButton => method_3<PegUIElement>("m_BuyButton");

		public MeshRenderer m_BuyButtonMesh => method_3<MeshRenderer>("m_BuyButtonMesh");

		public UberText m_BuyButtonText => method_3<UberText>("m_BuyButtonText");

		public UberText m_ReleaseLabelText => method_3<UberText>("m_ReleaseLabelText");

		public PegUIElement m_RewardsPreviewButton => method_3<PegUIElement>("m_RewardsPreviewButton");

		public GameObject m_PurchasedBanner => method_3<GameObject>("m_PurchasedBanner");

		public PegUIElement m_BigChest => method_3<PegUIElement>("m_BigChest");

		public List<BackgroundRandomization> m_BackgroundRenderers => method_3<Class271<BackgroundRandomization>>("m_BackgroundRenderers")?.method_25();

		public List<float> m_BackgroundOffsets => method_3<Class270<float>>("m_BackgroundOffsets")?.method_25();

		public bool m_BuyButtonOnOppositeSideOfKey => method_2<bool>("m_BuyButtonOnOppositeSideOfKey");

		public MeshRenderer m_UnlockButtonHighlightMesh_LOE => method_3<MeshRenderer>("m_UnlockButtonHighlightMesh_LOE");

		public float m_UnlockButtonHighlightIntensityOut => method_2<float>("m_UnlockButtonHighlightIntensityOut");

		public float m_UnlockButtonHighlightIntensityOver => method_2<float>("m_UnlockButtonHighlightIntensityOver");

		public float m_CoinSpacing => method_2<float>("m_CoinSpacing");

		public Vector3 m_CoinsOffset => method_2<Vector3>("m_CoinsOffset");

		public Vector3 m_CoinsChestOffset => method_2<Vector3>("m_CoinsChestOffset");

		public AdventureWingDef m_WingDef => method_3<AdventureWingDef>("m_WingDef");

		public Spell m_UnlockSpell => method_3<Spell>("m_UnlockSpell");

		public GameObject m_WallAccentObject => method_3<GameObject>("m_WallAccentObject");

		public GameObject m_PlateAccentObject => method_3<GameObject>("m_PlateAccentObject");

		public List<Boss> m_BossCoins => method_3<Class271<Boss>>("m_BossCoins")?.method_25();

		public bool m_Owned => method_2<bool>("m_Owned");

		public bool m_Playable => method_2<bool>("m_Playable");

		public bool m_Locked => method_2<bool>("m_Locked");

		public bool m_EventStartDetected => method_2<bool>("m_EventStartDetected");

		public static List<int> s_LastRandomNumbers => MonoClass.smethod_7<Class270<int>>(TritonHs.MainAssemblyPath, "", "AdventureWing", "s_LastRandomNumbers")?.method_25();

		public float CoinSpacing => method_11<float>("get_CoinSpacing", Array.Empty<object>());

		public Vector3 CoinsOffset => method_11<Vector3>("get_CoinsOffset", Array.Empty<object>());

		public Vector3 CoinsChestOffset => method_11<Vector3>("get_CoinsChestOffset", Array.Empty<object>());

		public bool IsDevMode => method_11<bool>("get_IsDevMode", Array.Empty<object>());

		public AdventureWing(IntPtr address, string className)
			: base(address, className)
		{
		}

		public AdventureWing(IntPtr address)
			: this(address, "AdventureWing")
		{
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void Start()
		{
			method_8("Start");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public void Update()
		{
			method_8("Update");
		}

		public void Initialize(AdventureWingDef wingDef)
		{
			method_8("Initialize", wingDef);
		}

		public void InitializeDevMode()
		{
			method_8("InitializeDevMode");
		}

		public AdventureWingDef GetWingDef()
		{
			return method_14<AdventureWingDef>("GetWingDef", Array.Empty<object>());
		}

		public WingDbId GetWingId()
		{
			return method_11<WingDbId>("GetWingId", Array.Empty<object>());
		}

		public List<AdventureRewardsChest> GetChests()
		{
			return method_14<Class271<AdventureRewardsChest>>("GetChests", Array.Empty<object>())?.method_25();
		}

		public AdventureDbId GetAdventureId()
		{
			return method_11<AdventureDbId>("GetAdventureId", Array.Empty<object>());
		}

		public int GetProductData()
		{
			return method_11<int>("GetProductData", Array.Empty<object>());
		}

		public string GetWingName()
		{
			return method_13("GetWingName");
		}

		public AdventureBossCoin CreateBoss(string coinPrefab, string rewardsPrefab, ScenarioDbId mission, bool enabled)
		{
			return method_14<AdventureBossCoin>("CreateBoss", new object[4] { coinPrefab, rewardsPrefab, mission, enabled });
		}

		public void SetAccent(string accentPrefab)
		{
			method_8("SetAccent", accentPrefab);
		}

		public void OpenBigChest()
		{
			method_8("OpenBigChest");
		}

		public void HideBigChest()
		{
			method_8("HideBigChest");
		}

		public void BigChestStayOpen()
		{
			method_8("BigChestStayOpen");
		}

		public void SetBigChestRewards(WingDbId wingId)
		{
			method_8("SetBigChestRewards", wingId);
		}

		public List<RewardData> GetBigChestRewards()
		{
			return method_14<Class271<RewardData>>("GetBigChestRewards", Array.Empty<object>())?.method_25();
		}

		public bool HasBigChestRewards()
		{
			return method_11<bool>("HasBigChestRewards", Array.Empty<object>());
		}

		public void UpdatePlateState()
		{
			method_8("UpdatePlateState");
		}

		public void UpdateRewardsPreviewCover()
		{
			method_8("UpdateRewardsPreviewCover");
		}

		public bool HasRewards()
		{
			return method_11<bool>("HasRewards", Array.Empty<object>());
		}

		public void RandomizeBackground()
		{
			method_8("RandomizeBackground");
		}

		public void BringToFocus()
		{
			method_8("BringToFocus");
		}

		public void HideBossChests()
		{
			method_8("HideBossChests");
		}

		public void NavigateBackCleanup()
		{
			method_8("NavigateBackCleanup");
		}

		public void UpdateCoinPositions()
		{
			method_8("UpdateCoinPositions");
		}

		public void FireBossSelectedEvent(AdventureBossCoin coin, ScenarioDbId mission)
		{
			method_8("FireBossSelectedEvent", coin, mission);
		}

		public void FireOpenPlateStartEvent()
		{
			method_8("FireOpenPlateStartEvent");
		}

		public void FireOpenPlateEndEvent(Spell s)
		{
			method_8("FireOpenPlateEndEvent", s);
		}

		public void OnUnlockButtonOut(UIEvent e)
		{
			method_8("OnUnlockButtonOut", e);
		}

		public void OnUnlockButtonOver(UIEvent e)
		{
			method_8("OnUnlockButtonOver", e);
		}

		public void UnlockButtonPressed(UIEvent e)
		{
			method_8("UnlockButtonPressed", e);
		}

		public void OnConfirmWingUnlockResponse(AlertPopup.Response response, object userData)
		{
			method_8("OnConfirmWingUnlockResponse", response, userData);
		}

		public bool TryToUnlockAutomatically()
		{
			return method_11<bool>("TryToUnlockAutomatically", Array.Empty<object>());
		}

		public void UnlockPlate()
		{
			method_8("UnlockPlate");
		}

		public void OnUnlockSpellFinished(Spell spell, object userData)
		{
			method_8("OnUnlockSpellFinished", spell, userData);
		}

		public void ShowBigChestRewards(UIEvent e)
		{
			method_8("ShowBigChestRewards", e);
		}

		public void HideBigChestRewards(UIEvent e)
		{
			method_8("HideBigChestRewards", e);
		}

		public void ShowBossRewards(ScenarioDbId mission, Vector3 origin)
		{
			method_8("ShowBossRewards", mission, origin);
		}

		public void HideBossRewards(ScenarioDbId mission)
		{
			method_8("HideBossRewards", mission);
		}

		public void FireShowRewardsPreviewEvent()
		{
			method_8("FireShowRewardsPreviewEvent");
		}

		public void FireTryPurchaseWingEvent()
		{
			method_8("FireTryPurchaseWingEvent");
		}

		public void UpdateBossChest(AdventureRewardsChest chest, ScenarioDbId mission)
		{
			method_8("UpdateBossChest", chest, mission);
		}

		public void UpdatePurchasedBanner()
		{
			method_8("UpdatePurchasedBanner");
		}

		public void UpdateBuyButton(bool isStoreOpen, object userData)
		{
			method_8("UpdateBuyButton", isStoreOpen, userData);
		}

		public bool HasWingBeenOpened()
		{
			return method_11<bool>("HasWingBeenOpened", Array.Empty<object>());
		}

		public bool IsWingRecommendedToOpen()
		{
			return method_11<bool>("IsWingRecommendedToOpen", Array.Empty<object>());
		}

		public void SetPlateKeyEvent(bool initial)
		{
			method_8("SetPlateKeyEvent", initial);
		}
	}
}
